package com.haidong.factory;

import com.haidong.dao.UserDao;
import com.haidong.dao.impl.UserDaoImpl;
import org.springframework.beans.factory.FactoryBean;

/**
 * 实例工厂实例化的IOC容器配置没有变化,是通过实现factoryBean接口然后重写方法达到目的
 */
public class UserDaoFactoryBean implements FactoryBean<UserDao> {
    // 代替原实例工厂创建对象的方法
    @Override
    public UserDao getObject() throws Exception {
        return new UserDaoImpl();
    }

    @Override
    public Class<?> getObjectType() {
        return UserDao.class;
    }

    /**
     * 这个方法不需要重写,因为一般就用默认的单例模式
     * @return
     */
    @Override
    public boolean isSingleton() {
        return FactoryBean.super.isSingleton();
    }
}
